package com.itheima.run;

import com.itheima.Utils.Utils;
import com.itheima.domain.Teacher;

import java.util.ArrayList;
import java.util.Scanner;

//这是教师的二级菜单;
public class teacherManager {
    //定义一个教师管理的方法;
    public static void teachermanager(ArrayList<Teacher> list1) {
        //使用无限循环包裹菜单;因为不知道用户需要执行几次菜单;
        while (true) {
            //给用户展示菜单信息;
            System.out.println("=====================================================");
            System.out.println("【教师信息管理】");
            System.out.println();
            System.out.println("1.添加教师  2.修改教师  3.查询教师  4.删除教师  5.返回");
            System.out.println("=====================================================");
            //创建一个键盘录入对象;
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入菜单编号:");
            int i = sc.nextInt();
            //通过switch语句判断编号对应的菜单;
            switch (i) {
                case 1:
                    //1.添加教师
                    addteacher(list1);
                    break;
                case 2:
                    //2.修改教师
                    setteacher(list1);
                    break;
                case 3:
                    //3.查询教师
                    findteacher(list1);
                    break;
                case 4:
                    //4.删除教师
                    removeteacher(list1);
                    break;
                case 5:
                    //5.返回
                    return;
                default:
                    System.out.println("您输入的编号有误!");
            }
        }
    }

    //添加教师信息方法;
    public static void addteacher(ArrayList<Teacher> list1) {
        Scanner sc = new Scanner(System.in);
        //给用户提示信息;
        System.out.println("请输入教师姓名:");
        String name = sc.next();
        System.out.println("请输入教师性别:");
        String sex = sc.next();
        System.out.println("请输入教师生日(格式为2000-01-01):");
        String birtheay = sc.next();
        //调用utils工具类获取id和年龄;
        int teaId = ++Utils.teaId;
        int age = Utils.birthdayToAge(birtheay);
        //将已经录入好的数据封装到对象当中;
        Teacher tea = new Teacher(teaId, name, sex, birtheay, age);
        //调用集合deadd加法将对象天剑到集合当中去;
        list1.add(tea);
        //给用户一句提示,添加成功;
        System.out.println("信息添加成功!");
    }

    //查看教师信息方法;
    public static void findteacher(ArrayList<Teacher> list1) {
        //首先判断集合中有没有元素;调用集合中的方法;
        if (list1.size() == 0) {
            //给用户一句提示;
            System.out.println("没有你要查找的教师信息!");
        } else {
            //因为utils工具类中已经编写了打印方法,所以直接调用;
            Utils.printPersonList(list1);
        }
    }

    //编写删除教师信息的方法;
    public static void removeteacher(ArrayList<Teacher> list1) {
        //首先录入你要删除教师的编号;
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入你要删除的教师编号:");
        int id = sc.nextInt();
        //判断集合中有没有需要删除的id;
        //遍历集合,取出每个集合对象中的id进行比较;
        for (int i = 0; i < list1.size(); i++) {
            Teacher teacher = list1.get(i);
            int id1 = teacher.getId();
            //使用if语句进行判断;
            if (id == id1) {
                //如果两个id相等,则说明找到了,调用集合的remove方法进行删除;
                list1.remove(i);
                //然后给用户一句提示;
                System.out.println("删除成功!");
                //结束当前方法;
                return;
            }
        }
        //如果方法能走到这里,说明没有需要删除的编号,则给用户一句提示;
        System.out.println("没有你要查找的教师信息!");
    }

    //编写修改教师信息的方法;
    public static void setteacher(ArrayList<Teacher> list1) {
        //首先需要录入你要删除的教师编号;
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入你要删除的教师编号:");
        int id = sc.nextInt();
        //输入你需要重新录入的信息;
        //遍历集合查找有没有需要修改的id;
        for (int i = 0; i < list1.size(); i++) {
            //创建教师对象,取出每一个教师对象的id1;
            Teacher teacher = list1.get(i);
            int id1 = teacher.getId();
            if (id == id1) {
                System.out.println("请输入新的教师的姓名(如果姓名不变请输入0):");
                String name = sc.next();
                System.out.println("请输入新的教师的性别(如果姓名不变请输入0):");
                String sex = sc.next();
                System.out.println("请输入新的教师的生日(如果姓名不变请输入0):");
                String birthday = sc.next();
                //判断录入的数据是不是0;
                if (!name.equals("0")) {
                    //如果录入的信息不等于0,则调用set方法
                    teacher.setName(name);
                }
                if (!sex.equals("0")) {
                    teacher.setSex(sex);
                }
                if (!birthday.equals("0")) {
                    teacher.setBirthday(birthday);

                //因为年龄是因为utils工具类计算出来的,所以调用这个工具类;
                int age1 = Utils.birthdayToAge(birthday);
                //将新年龄修改到对象当中;
                teacher.setAge(age1);

                }
                System.out.println("修改成功");
                return;
            }
        }
        System.out.println("没有你要查找的教师信息!");

    }
}
